<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ip::basic_resolver::async_resolve (3 of 6 overloads)</title>
    <link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
    <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
    <link rel="home" href="../../../../index.html" title="Asio">
    <link rel="up" href="../async_resolve.html" title="ip::basic_resolver::async_resolve">
    <link rel="prev" href="overload2.html" title="ip::basic_resolver::async_resolve (2 of 6 overloads)">
    <link rel="next" href="overload4.html" title="ip::basic_resolver::async_resolve (4 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%">
    <tr>
        <td valign="top"><img alt="asio C++ library" width="250" height="60" src="../../../../asio.png"></td>
    </tr>
</table>
<hr>
<div class="spirit-nav">
    <a accesskey="p" href="overload2.html"><img src="../../../../prev.png" alt="Prev"></a><a accesskey="u"
                                                                                             href="../async_resolve.html"><img
        src="../../../../up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img
        src="../../../../home.png" alt="Home"></a><a accesskey="n" href="overload4.html"><img src="../../../../next.png"
                                                                                              alt="Next"></a>
</div>
<div class="section">
    <div class="titlepage">
        <div>
            <div><h5 class="title">
                <a name="asio.reference.ip__basic_resolver.async_resolve.overload3"></a><a class="link"
                                                                                           href="overload3.html"
                                                                                           title="ip::basic_resolver::async_resolve (3 of 6 overloads)">ip::basic_resolver::async_resolve
                (3 of 6 overloads)</a>
            </h5></div>
        </div>
    </div>
    <p>
        Asynchronously perform forward resolution of a query to a list of entries.
    </p>
    <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../../ResolveToken.html"
                                             title="Resolve token requirements">ResolveToken</a> <span
                class="special">=</span> <a class="link"
                                            href="../../asynchronous_operations.html#asio.reference.asynchronous_operations.default_completion_tokens"><span
                class="emphasis"><em>DEFAULT</em></span></a><span class="special">&gt;</span>
<a class="link"
   href="../../asynchronous_operations.html#asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span
        class="emphasis"><em>DEDUCED</em></span></a> <span class="identifier">async_resolve</span><span class="special">(</span>
    <span class="identifier">string_view</span> <span class="identifier">host</span><span class="special">,</span>
    <span class="identifier">string_view</span> <span class="identifier">service</span><span class="special">,</span>
    <span class="identifier">resolver_base</span><span class="special">::</span><span
                class="identifier">flags</span> <span class="identifier">resolve_flags</span><span
                class="special">,</span>
    <span class="identifier">ResolveToken</span> <span class="special">&amp;&amp;</span> <span
                class="identifier">token</span> <span class="special">=</span> <a class="link"
                                                                                  href="../../asynchronous_operations.html#asio.reference.asynchronous_operations.default_completion_tokens"><span
                class="emphasis"><em>DEFAULT</em></span></a><span class="special">);</span>
</pre>
    <p>
        This function is used to resolve host and service names into a list of
        endpoint entries. It is an initiating function for an <a class="link"
                                                                 href="../../../overview/model/async_ops.html"
                                                                 title="Asynchronous Operations">asynchronous
        operation</a>, and always returns immediately.
    </p>
    <h6>
        <a name="asio.reference.ip__basic_resolver.async_resolve.overload3.h0"></a>
        <span><a name="asio.reference.ip__basic_resolver.async_resolve.overload3.parameters"></a></span><a class="link"
                                                                                                           href="overload3.html#asio.reference.ip__basic_resolver.async_resolve.overload3.parameters">Parameters</a>
    </h6>
    <div class="variablelist">
        <p class="title"><b></b></p>
        <dl>
            <dt><span class="term">host</span></dt>
            <dd><p>
                A string identifying a location. May be a descriptive name or a
                numeric address string. If an empty string and the passive flag
                has been specified, the resolved endpoints are suitable for local
                service binding. If an empty string and passive is not specified,
                the resolved endpoints will use the loopback address.
            </p></dd>
            <dt><span class="term">service</span></dt>
            <dd><p>
                A string identifying the requested service. This may be a descriptive
                name or a numeric string corresponding to a port number. May be
                an empty string, in which case all resolved endpoints will have
                a port number of 0.
            </p></dd>
            <dt><span class="term">resolve_flags</span></dt>
            <dd><p>
                A set of flags that determine how name resolution should be performed.
                The default flags are suitable for communication with remote hosts.
                See the <a class="link" href="../../ip__resolver_base.html" title="ip::resolver_base"><code
                    class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span
                    class="identifier">resolver_base</span></code></a> documentation
                for the set of available flags.
            </p></dd>
            <dt><span class="term">token</span></dt>
            <dd>
                <p>
                    The <a class="link" href="../../../overview/model/completion_tokens.html" title="Completion Tokens">completion
                    token</a> that will be used to produce a completion handler,
                    which will be called when the resolve completes. Potential completion
                    tokens include <a class="link" href="../../use_future.html" title="use_future"><code
                        class="computeroutput"><span class="identifier">use_future</span></code></a>, <a class="link"
                                                                                                         href="../../use_awaitable.html"
                                                                                                         title="use_awaitable"><code
                        class="computeroutput"><span class="identifier">use_awaitable</span></code></a>, <a class="link"
                                                                                                            href="../../yield_context.html"
                                                                                                            title="yield_context"><code
                        class="computeroutput"><span class="identifier">yield_context</span></code></a>, or a function
                    object with the correct completion signature. The function signature
                    of the completion handler must be:
                </p>
                <pre class="programlisting"><span class="keyword">void</span> <span
                        class="identifier">handler</span><span class="special">(</span>
  <span class="keyword">const</span> <span class="identifier">asio</span><span class="special">::</span><span
                            class="identifier">error_code</span><span class="special">&amp;</span> <span
                            class="identifier">error</span><span class="special">,</span> <span class="comment">// Result of operation.</span>
  <span class="identifier">resolver</span><span class="special">::</span><span
                            class="identifier">results_type</span> <span class="identifier">results</span> <span
                            class="comment">// Resolved endpoints as a range.</span>
<span class="special">);</span>
</pre>
                <p>
                    Regardless of whether the asynchronous operation completes immediately
                    or not, the completion handler will not be invoked from within
                    this function. On immediate completion, invocation of the handler
                    will be performed in a manner equivalent to using <a class="link" href="../../post.html"
                                                                         title="post"><code class="computeroutput"><span
                        class="identifier">post</span></code></a>.
                </p>
            </dd>
        </dl>
    </div>
    <p>
        A successful resolve operation is guaranteed to pass a non-empty range
        to the handler.
    </p>
    <h6>
        <a name="asio.reference.ip__basic_resolver.async_resolve.overload3.h1"></a>
        <span><a name="asio.reference.ip__basic_resolver.async_resolve.overload3.completion_signature"></a></span><a
            class="link"
            href="overload3.html#asio.reference.ip__basic_resolver.async_resolve.overload3.completion_signature">Completion
        Signature</a>
    </h6>
    <pre class="programlisting"><span class="keyword">void</span><span class="special">(</span><span class="identifier">asio</span><span
            class="special">::</span><span class="identifier">error_code</span><span class="special">,</span> <span
            class="identifier">results_type</span><span class="special">)</span>
</pre>
    <h6>
        <a name="asio.reference.ip__basic_resolver.async_resolve.overload3.h2"></a>
        <span><a name="asio.reference.ip__basic_resolver.async_resolve.overload3.remarks"></a></span><a class="link"
                                                                                                        href="overload3.html#asio.reference.ip__basic_resolver.async_resolve.overload3.remarks">Remarks</a>
    </h6>
    <p>
        On POSIX systems, host names may be locally defined in the file <code class="computeroutput"><span
            class="special">/</span><span class="identifier">etc</span><span class="special">/</span><span
            class="identifier">hosts</span></code>.
        On Windows, host names may be defined in the file <code class="computeroutput"><span class="identifier">c</span><span
            class="special">:\</span><span class="identifier">windows</span><span class="special">\</span><span
            class="identifier">system32</span><span class="special">\</span><span class="identifier">drivers</span><span
            class="special">\</span><span class="identifier">etc</span><span class="special">\</span><span
            class="identifier">hosts</span></code>.
        Remote host name resolution is performed using DNS. Operating systems
        may use additional locations when resolving host names (such as NETBIOS
        names on Windows).
    </p>
    <p>
        On POSIX systems, service names are typically defined in the file <code class="computeroutput"><span
            class="special">/</span><span class="identifier">etc</span><span class="special">/</span><span
            class="identifier">services</span></code>.
        On Windows, service names may be found in the file <code class="computeroutput"><span
            class="identifier">c</span><span class="special">:\</span><span class="identifier">windows</span><span
            class="special">\</span><span class="identifier">system32</span><span class="special">\</span><span
            class="identifier">drivers</span><span class="special">\</span><span class="identifier">etc</span><span
            class="special">\</span><span class="identifier">services</span></code>.
        Operating systems may use additional locations when resolving service
        names.
    </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%">
    <tr>
        <td align="left"></td>
        <td align="right">
            <div class="copyright-footer">Copyright © 2003-2022 Christopher M. Kohlhoff<p>
                Distributed under the Boost Software License, Version 1.0. (See accompanying
                file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
            </p>
            </div>
        </td>
    </tr>
</table>
<hr>
<div class="spirit-nav">
    <a accesskey="p" href="overload2.html"><img src="../../../../prev.png" alt="Prev"></a><a accesskey="u"
                                                                                             href="../async_resolve.html"><img
        src="../../../../up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img
        src="../../../../home.png" alt="Home"></a><a accesskey="n" href="overload4.html"><img src="../../../../next.png"
                                                                                              alt="Next"></a>
</div>
</body>
</html>
